#ifndef TEXTEDIT_H
#define TEXTEDIT_H

#include <QTextEdit>
#include <QTextCharFormat>

class TextEdit : public QTextEdit
{
    Q_OBJECT
public:
    TextEdit(QWidget *parent = nullptr);
    ~TextEdit();

    void initNewDoc();               //初始化新建文档
    QString getDocFilePath() const;      //获取文档路径(包含文件名)
    QString getDocName() const;          //获取文档名
    QString getDocWindowTitle() const;      //获取文档窗口标题
    bool loadDoc(const QString& docName);   //加载文档
    bool saveDoc();           //保存文档
    bool saveAsDoc();         //另存为

private:
    void initOpenDoc(const QString& docName);  //初始化打开的文档
    bool writeToDoc(const QString& docName);   //写入本地文档
    bool promptSave();    //提示保存

protected:
    void closeEvent(QCloseEvent *event) override;   //重写关闭事件

private slots:
    void setWindowModify();    //设置windowModified属性

private:
    static int docNo;    //文档编号
    QString docWindowTitle;     //文档窗口标题
    QString docFilePath;     //文档路径(包含文件名)
};

#endif // TEXTEDIT_H
